package cn.itcast.dao;

import cn.itcast.pojo.User;
import com.github.pagehelper.Page;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserDao {

    /**
     * 分页查询用户管理列表
     * @param queryString 查询条件
     * @return
     */
    Page<User> findPage(String queryString);



    /**
     * 新增用户
     * @param user 用户信息
     * @return
     */
    int handleAdd(User user);


    /**
     * 将用户对应的角色添加到t_user_role表中
     * @param id 用户id
     * @param roleId 角色id
     * @return
     */
    int addToUserRole(@Param("user_id") Integer id, @Param("role_id") int roleId);



    /**
     * 根据id查询用户信息
     * @param id 用户id
     * @return
     */
    User findUserById(Integer id);


    /**
     * 根据用户id到t_user_role表中查询角色id
     * @param id 用户id
     * @return
     */
    List<Integer> findRoleList(Integer id);


    /**
     * 通过当前用户id， 删除t_user_role表中的数据
     * @return
     */
    int deleteById(Integer id);


    /**
     * 用户信息跟新到数据库中
     * @param user 用户信息
     * @return
     */
    int handleUpdate(User user);


    /**
     * 根据用户id删除user表中的数据
     * @param id
     * @return
     */
    int deleteUserById(Integer id);



    /**
     * 登陆
     * @param username
     * @return
     */
    User findByUsername(String username);




    List<String> findRoleByUsername(String username);

    List<String> findPermissionByUsername(String username);

    User findUserByUsername(String username);

}
